/*
 * File:   stopwatch.h
 * Author: wijnand.schepens@hogent.be
 *
 * Klasse voor tijdsmetingen. Opgelet: nauwkeurigheid is platformafhankelijk!
 *
 * Created on 30 december 2009, 21:12
 */

#ifndef _STOPWATCH_H
#define	_STOPWATCH_H

#include <ctime>

class StopWatch {
public:

    void start() {
        begin = clock();
    }

    void stop() {
        eind = clock();
    }

    double tijd_in_sec() {
        return (double) (eind - begin) / CLOCKS_PER_SEC;
    }

    // meet tijd (in sec) die functie-oproep func() duurt
    template <typename FUNC>
    static double meet(const FUNC &func)
    {
        StopWatch sw;
        sw.start();
        func();
        sw.stop();
        return sw.tijd_in_sec();
    }


private:
    clock_t begin, eind;

};


#endif	/* _STOPWATCH_H */

